//============================================================================
/**
 *
 *	@file		break_poke.h
 *	@brief		ポケスロン競技「かわらわり」 ポケモン操作
 *	@author		hosaka genya
 *	@data		2008.11.13
 *
 */
//============================================================================
#pragma once
#include "../../pkthln_poke_act.h"

typedef struct BREAK_POKE_tag * BREAK_POKE_PTR;
typedef struct COMM_POKE_CNT_tag * COMM_POKE_CNT_PTR;

//=============================================================================
/**
 *								定数定義
 */
//=============================================================================
enum {
	POKEGRA_SEQ_STOP  = 0,
	POKEGRA_SEQ_STEP,
	POKEGRA_SEQ_ATTACK,
};

typedef enum {
	BPOKE_STATE_NORMAL = 0,		///< 通常状態
	BPOKE_STATE_ATTACK,			///< 攻撃中
	BPOKE_STATE_PANIC,			///< 気絶
	BPOKE_STATE_CHANGE,			///< 交代
} BPOKE_STATE;

//=============================================================================
/**
 *								構造体定義
 */
//=============================================================================

//=============================================================================
/**
 *								プロトタイプ宣言
 */
//=============================================================================
extern BREAK_POKE_PTR BreakPoke_Create( HEAPID HeapID, CATS_SYS_PTR csp, CATS_RES_PTR crp, PKTHLN_PTR work );
extern void BreakPoke_Delete( BREAK_POKE_PTR ptr );
extern void BreakPoke_Proc( BREAK_POKE_PTR ptr, BOOL bKawaraMaking );
extern void BreakPoke_Attack( BREAK_POKE_PTR ptr, BOOL bCritical, u16 breakNum );
extern void BreakPoke_Change( BREAK_POKE_PTR ptr );
extern void BreakPoke_SetAutoAnime( BREAK_POKE_PTR ptr, BOOL b_auto_anime );
extern BPOKE_STATE BreakPoke_GetState( BREAK_POKE_PTR ptr );
extern BOOL BreakPoke_CheckChangeEnable( BREAK_POKE_PTR ptr );
extern const BREAK_POKE_PARAM* BreakPoke_GetActiveParam( BREAK_POKE_PTR ptr );
extern BOOL BreakPoke_GetHighTensionFlag( BREAK_POKE_PTR ptr );
extern BOOL BreakPoke_GetSweatFlag( BREAK_POKE_PTR ptr );
extern u16 BreakPoke_GetTension( BREAK_POKE_PTR ptr );
extern u8 BreakPoke_GetPokeIdx( BREAK_POKE_PTR ptr );
extern BOOL BreakPoke_IsAttackEnable( BREAK_POKE_PTR ptr );

extern COMM_POKE_CNT_PTR CommPokeCnt_Create( HEAPID HeapID, CATS_SYS_PTR csp, CATS_RES_PTR crp, PKTHLN_PTR work, POKE_ACT_CNT_PTR PokeActCntPtr );
extern void CommPokeCnt_Delete( COMM_POKE_CNT_PTR cnt );
extern void CommPokeCnt_Proc( COMM_POKE_CNT_PTR cnt );
extern void CommPokeCnt_Finish( COMM_POKE_CNT_PTR cnt );
